package dominio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import dto.ReferenciaRemitoTransporteTO;
import dto.RemitoTransporteTO;

public class RemitoTransporte {
	private Integer id;
	private Date fecha;
	private List<ReferenciaRemitoTransporte> referencias;
	private boolean pendiente;

	public RemitoTransporte() {
		referencias = new ArrayList<ReferenciaRemitoTransporte>();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public List<ReferenciaRemitoTransporte> getReferencias() {
		return referencias;
	}

	public void agregarReferencia(ReferenciaRemitoTransporte referencia) {
		referencias.add(referencia);
	}

	public boolean isPendiente() {
		return pendiente;
	}

	public void setPendiente(boolean pendiente) {
		this.pendiente = pendiente;
	}

	public RemitoTransporteTO getDTO() {
		RemitoTransporteTO dto = new RemitoTransporteTO();
		dto.setId(id);
		dto.setFecha(fecha);
		for (ReferenciaRemitoTransporte ref : referencias)
			dto.agregarReferencia(ref.getDTO());
		return dto;
	}

	public static RemitoTransporte fromDTO(RemitoTransporteTO dto) {
		if (dto == null)
			return null;
		RemitoTransporte rt = new RemitoTransporte();
		rt.setId(dto.getId());
		rt.setFecha(dto.getFecha());
		for (ReferenciaRemitoTransporteTO ref : dto.getReferencias())
			rt.agregarReferencia(ReferenciaRemitoTransporte.fromDTO(ref));
		return rt;
	}
}